# 算术 关系 逻辑 赋值 运算符等等

# + - * / %  **(乘方)  // (取整除法）

# 在python中，0不能作为除数！(10/0)

# 在python中整数除以整数，结果可能是浮点数
# 大部分的编程语言都是整数除以整数，结果还是整数
# % 求余数
print(7 % 3)

# **(乘方运算)，既能支持整数次方，也支持小数次方（开方运算） 比如：2的0.5次方

print(4 ** 2)
print(4 ** 0.5)

# // (取整除法），也叫地板除法，会针对计算的结果进行向下取整
print(7 // 2)
print(-7 // 2)


# 关系运算符就是在比较两个操作数之间的大小关系
# 关系运算符对应的值是布尔类型


a = 10
b = 20
print(a < b)
print(a > b)
print(a <= b)
print(a >= b)
print(a == b)
print(a != b)

# 还能比较字符串！  字典序！先看首字符在字母表的顺序，谁小谁就排在前面，依次比较，字符串在词典上越靠前越小，越靠后越大。针对中文比较是没有意义的

a1 = 'hello'
b1 = 'world'
print(a1 < b1)
print(a1 > b1)
print(a1 <= b1)
print(a1 >= b1)
print(a1 == b1)
print(a1 != b1)

# 在C中，提供了 strcmp 函数来比较字符串，==本质上比较的是两个字符串首元素地址，C++支持运算符重载可以使用==直接比较



# 针对浮点数来说，使用==来比较相等，存在一定的风险！ 因为，浮点数在内存中存储和表示，是有误差的！
# 这样的误差在进行算术运算的时候就可能被放大，从而导致 == 的判定出现误判！
# ctrl + / 批量注释


print(0.1 + 0.2 == 0.3) #False
print(0.1)
print(0.2)
print(0.3)
print(0.1 + 0.2) #0.30000000000000004

# 正确的浮点数比较想的，是作差看是否小于预期的范围！

a = 0.1 +0.2
b = 0.3
# 这个代码是看 a - b 差是否是一个非常小的数字，是否在误差范围之内
print(-0.000001 < (a-b) < 0.000001)  # python中支持这种连续小于的写法，区间范围。C++不支持





